난수와 키 분배

난수와 키 분배

암호 시스템의 핵심 자원 관리 — 난수 생성과 키 전달

난수 활용

용도 설명
공개키 암호화 키 생성 RSA, ECC 등의 키 쌍 생성
대칭 스트림 암호의 키스트림 RC4 등
세션키 / 전자봉투용 대칭키 임시 세션 암호화
재사용 공격 방지 핸드셰이킹 논스(Nonce)

난수 요구사항

임의성

비예측성


진성 난수 vs 의사 난수

구분 특징
의사 난수 (PRNG) 알고리즘으로 생성, 통계적 임의성은 만족하나 예측 가능
진성 난수 (TRNG) 비결정성 소스(열잡음, 키 입력 타이밍 등) 활용, 예측 불가

암호 어플리케이션은 알고리즘 기반 PRNG 주로 사용 → 초기 시드(seed)가 중요


암호화 위치

A ──[암호화]── 중간 노드 ──[복호화→재암호화]── 중간 노드 ──[복호화]── B

종단 간 암호화 (End-to-End Encryption)

A ──[암호화: 데이터만]──────────────────────────── B
        헤더는 평문 (중간 노드가 경로 지정 가능)

해결: 두 방식 동시 사용 (링크 + 종단 간)


키 분배

두 집단이 서로 키를 노출하지 않고 동일한 키를 공유하는 방법

방법 설명 적용
A가 키 선택 후 B에게 물리적 전달 안전하나 비효율 링크 암호화
제3자가 A, B에게 물리적 전달 안전하나 비효율 링크 암호화
이전 키로 새 키 암호화 전달 효율적, 이전 키 노출 시 연쇄 위험 링크/종단 간
제3자(KDC)가 암호 채널로 전달 가장 일반적 링크/종단 간

세션키 vs 영구키

구분 설명
세션키 데이터 전송용 일회용 키, 세션 종료 시 파괴
영구키 세션키 분배 목적, KDC나 공인인증 서버에서 관리

KDC (Key Distribution Center)

관련 개념